The present invention relates to communications interfaces and methods for use for remote administration of a personal computer being used as a server. The personal computer is not equipped for serial output of console messages during boot. A display emulator, keyboard emulator and serial I/O port are provided for capturing and forwarding BIOS level console output and for receiving keyboard emulation input data.
Generally, servers operate unmanned and provide a common service to a plurality of manned computers, all connected by a network of some sort. Typically, a server maintains one or more local disks and services application requests from remote computers such as reading and writing to shared directories. Specifically engineered servers include those by Sun Microsystems, based on Motorola 680x0 or SPARC microprocessors (from Sun Microsystems, Inc., Mt. View Calif.). Usually, these servers utilize a Unix operation system, and utilize a hardware architecture and software which is easily remotely administrated, including the provision for serial I/O at the boot level for the output of character-based diagnostic messages. Due to the ability to route a server""s console output through a serial device to an administrating terminal, it is usual to omit a video display (running headless) and omit a keyboard input. Sometimes one set of video and keyboard interfaces may be switched among many servers locally, or through a network.
Increasingly, lower cost Intel Pentium-based microprocessor personal computers are now also being implemented as servers (referred to herein as a PC-Server). However, such a PC-Server, equipped with a conventional Basic Input/Output System (BIOS), cannot be as readily administered remotely.
In such IBM PC and compatible Personal Computers (PCs), the PC-BIOS provides the lowest level interface and hardware drivers for peripheral input/output (I/O) devices, such as video output, keyboard input and media I/O. The video output during boot up at the BIOS level is generally ASCII character based as the hardware and memory intensive graphical characteristics of a Graphical User Interface (GUI) requires application programs and capable peripherals (e.g. video display).
On boot up, such a PC-BIOS outputs certain status information to a local video display but, unlike the engineered servers, and except for custom designs, it is not generally capable of output other than through the local video display. Such information includes a character display confirmation of the successful operation and identification of the video display device, the amount of RAM and the current status of BIOS settings such as the processor type, hard drive specifications, and the presence and type of other installed I/O devices. Opportunities are provided to a user to interrupt the boot process with a keyboard stroke and thereby modify the system PC-BIOS configuration or peripherals settings.
Once the operating system is running however, application programs are available to enable a remote user to access and manipulate certain of the computer settings. Such an application program is pcAnywhere, supplied by Symantec Corporation, of Cupertino, Calif. The pcAnywhere program and protocol provides communication components which enable remote control capabilities through a phone line or an internet interface. The user installs and runs a version of the pcAnywhere program on both the remote and the host PCs. Once loaded and running, the user at the remote PC can remotely access data and control applications located on the host PC. The usual communication protocol between the PCs is the TCP/IP Network Protocol, accessed through an internet connection.
However, after a reboot, control is not regained until the operating system is again loaded and the pcAnywhere application program is running again, long after any diagnostic messages are past. In a diagnostic situation, generally to resolve the situation which prompted a restart of the PC in the first place, monitoring of the BIOS level information is the most pertinent.
Further, during normal use of the PC occasionally, extraordinary system level errors occur and messages are displayed directly in a default character or text format on the normal graphical interface video display. Again, these are only displayed on the local video display.
In U.S. Pat. No. 5,214,785 to Fairweather, a controller is disclosed for remote operation of a host PC, particularly for remotely initiating host PC application programs, downloaded to the controller for operating a plurality of external peripheralsxe2x80x94like household line-powered devicesxe2x80x94even after the host PC is powered down. Fairweather envisions powering the host PC through a controller peripheral for permitting hard reboot of the host PC via interruption of the PC""s power. The controller operation is dictated through software downloaded from corresponding applications started by the controller and running on the host PC. The controller is provided physically external to the PC and comprises a microprocessor, ROM-resident software, an RS-232 serial I/O communication device, and a keyboard emulation interface. An application program may be started through commands issued through the emulated keyboard interface. Once running, host PC application program can writing ASCII commands to the controller or download a program to the controller""s ROM through the host PC""s RS-232 port. Fairweather acknowledges that once the host PC has been brought up to operating system level, then Fairweather""s RS-232 application program may be started. Accordingly, Fairweather""s controller operates xe2x80x9cblindxe2x80x9d until their corresponding application program is operational.
Others have implemented external hardware which connect to the video output of the PC""s own video card and thus are capable of rebroadcasting the data that appears on a local terminal, including boot screens, via modem to a remote user running a compatible operating systems such as Windows 9X (Microsoft Corporation). In other words, what is fed to the monitor is rebroadcast. The remote system operates pcAnywhere protocol to enables remote control of the hardware. The remote user is limited to the information which is displayed and not to the additional yet useful non-displayed POST diagnostic information.
Applicants are unaware of means, either in the prior art, including the teachings of Fairweather, for administering a typical BIOS-equipped PC through boot without actually monitoring a local video display or manipulating a local keyboard. Accordingly, it is not known to perform administration, troubleshooting or for maintenance on such a PC-Server including the ability to review system level messages or reset the system, including to address the installed peripherals or to command selection of a different boot device.
Accordingly, for a PC-Server which has a standard BIOS and is headless, there has not yet been a satisfactory solution for the demonstrated need to provide remote console output to effect proper PC-Server administration.
Generally, the invention is an administration adapter for a PC-server which implements communications to a remote user for remote viewing of data available on the PC-Server""s bus and for enabling remote keyboard input, even during re-boot sequence of the PC-server. The PC-Server recognizes the administration adapter as comprising both an emulated display adapter and an RS-232 serial communications device. Preferably the emulated display adapter emulates both the video frame buffer and video controller register. Further, power up self test or POST data is also written from the bus to the administration adapter so that it and display data is converted to a serial data stream and is serially output to the remote user. In return, remote user keyboard commands are received by the serial device, are converted to compatible scan codes (emulating the PC-Server""s keyboard) and are routed to the PC-Server""s keyboard input interface as though the commands were issued with a local keyboard.
Accordingly, in a broad method aspect of the invention, a method of remote user administration of a PC-Server having a data bus for read and write functions to peripherals including a display adapter, and having at least one keyboard input interface, comprising the steps of:
providing a peripheral adapter on the bus which emulates the display adapter to an extent necessary to receive textual display data from the bus and which has a communications device for transmission of data between the PC-Server and the remote user;
determining if the bus has written textual display data to the adapter;
extracting the textual display data from the adapter;
transmitting the textual display data via the communications device to the remote user;
receiving keyboard commands from the remote user via the communications device; and
transmitting the received keyboard commands to and in a form compatible with the keyboard input interface.
Preferably, the adapter emulates the video frame buffer of a display adapter, the textual display data is converted to ANSI escape sequences before transmission to the remote user, the keyboard commands are converted into scan codes before transmission to the keyboard input interface, and that the display data and keyboard commands are communicated via a serial I/O device.
More preferably, the adapter further emulates the I/O port for the BIOS power up self test (POST) so that the status of the last write may be extracted and transmitted to the remote user for demonstrating the status of the most recent PC-Server BIOS initiation.
The method the invention is achieved using novel apparatus, which in a broad aspect comprises:
an adapter on the bus which emulates a display adapter to an extent necessary to receive textual display data from the PC-Server bus;
means for extracting the textual display data from the adapter;
means for transmitting the textual display data to a remote user;
means for receiving data from the remote user representing keyboard commands to the PC-Server; and
means for transmitting the keyboard commands to and compatible with the PC-Server input interface.
Preferably, the adapter emulates at least the video frame buffer and video controller registers for a display adapter.
More preferably, the means for transmitting console output and receiving input commands is a serial communications device, the means for retrieving character data from the frame buffer and converting it for serial transmission is a microprocessor and a microprocessor converts the input commands to scan codes compatible with the PC-Server keyboard input interface.
The method and apparatus of the present invention also makes it possible to route textual data to a speech synthesizer at the boot level, which heretofore has required the operating system to be fully loaded to provide any text-to speech synthesis.